<?php
class mprocesos extends model
{
	private $mTableName='SC_Procesos';
	
	public function __construct()
	{
		parent::Model();
		$this->load->database();
		
	}
	
	public function procesoAdd($data)
	{
	
	   if ($this->db->insert($this->mTableName, $data)){
	        return true;
	    } 	
	        return false;
	}
		
	public function upDateProceso($idProceso, $data)
	{
	      $this->db->where('IdProceso', $idProceso);    
	      if ( $this->db->update($this->mTableName, $data)) {
	      	
	      	   return true;	 
	      }
	  
	           return false;	 
	}
	
    public function loadProcesosByIn($where = false, $idEtapa = false) 
    {
      
            if ($where != false)
         	  $this->db->where($where);
         	  
         	$this->db->where_in('IdEtapa', $idEtapa);
         	$this->db->group_by('IdCompania');
            $result = $this->db->get($this->mTableName);
         	return $this->GetProcesosArrayFromQueryResult($result);
         	
     }
	
	public function update($data, $id)
	{
		if($this->db->update($this->mTableName, $data, array('IdProceso' => $id))){
			
			return true;
		}
		
			return false;
	}
	
	public function createProcesoLote($data)
	{
		$this->db->insert($this->mTableName, $data);				
	}
	
	public function urtimoId($id =false,$true=false)
	{
              $result =0;
	    
              if($true == false){
                  
                  $result = $this->db->query("SELECT max(`FechaProceso`) as fecha, IdTipoSeguimiento  FROM `SC_Procesos` WHERE `IdCompania` =  $id");
              }  else {
    
                  $result = $this->db->query("SELECT max(`fechaContacto`) as fechaContacto, IdTipoSeguimiento  FROM `SC_Procesos` WHERE `IdCompania` =  $id");
                  
                                }
              
          
	    
	    	$return = array();
                               
                               foreach ($result->result() as $record) 
			{
				$return[]=$record;
			
			}
			
                               
                               return $return;
	}
	
	public function urtimoEstatus($company)
	{
	   	$this->db->where('IdCompania', $company);
	    $this->db->select_max('IdProceso'); 
	    $result = $this->db->get($this->mTableName);
	    
	    	return $this->GetProcesosArrayFromQueryResult($result);	
	}
	  
	/**
	 * esto pertenese al reporte 
	 * **/
	
	public function updataIdCompany($id,$etapa = false,$fecha1 = false,$fecha2 = FALSE, $status = false){
		   
		   if ($status != 'n') {
		   	$this->db->where('IdEstatus',$status);
		   }
		   
	       $this->db->where('IdCompania',$id);
	       $this->db->where('IdEtapa',$etapa);
	       $this->db->where('FechaSysProceso >=',$fecha1);
	       $this->db->where('FechaSysProceso <=',$fecha2);
	       $result = $this->db->get($this->mTableName);
           return $this->GetProcesosArrayFromQueryResult($result);
	}
	
	public function getDataIdCompany($array)
	{
	   $result = $this->db->get_where($this->mTableName, $array);
       return $this->GetProcesosArrayFromQueryResult($result);
	}
	
	function updateFechaArr($id,$fecha){
		$this->db->where('IdProceso',$id);
		$data = array('Fechas'=>$fecha);
		$this->db->update($this->mTableName, $data);
	}
	
	/**
	 * esto es el fin de lo que pertenese al reporte
	**/
	
	
	function GetProcesosArrayFromQueryResult($result) 
	{
			if ($result->num_rows() == 0)
			{
				return false;
			}	

			$proceso_arr = array();

			foreach ($result->result() as $record) 
			{
				$proceso_arr[]=new proceso($record);
			
			}
			
			return $proceso_arr;
    }
    
    function LoadProcesos($id_compania = false, $start = false, $offset = false, $sortname = false, $sortorder = false) 
    {
    		if($id_compania != false && $id_compania != '')
				$this->db->where('IdCompania', $id_compania);

			if($offset != false)
				$this->db->limit($offset, $start);

			if($sortname != false && $sortorder != false) {
				$this->db->order_by($sortname, $sortorder);
			}

			$result = $this->db->get($this->mTableName);

			return $this->GetProcesosArrayFromQueryResult($result);
	}
          
          function LoadProcesosConteoCambioDeEtapasFirmaDatos($idCompania = false ,$idEtapa = false) 
             {           
                                  
                               $result = $this->db->query("SELECT min(`FechaProceso`) as fecha FROM `SC_Procesos` WHERE `IdCompania` =  $idCompania and  `IdEtapa` = $idEtapa");
                               
                               $return = array();
                               
                               foreach ($result->result() as $record) 
			{
				$return[]=$record;
			
			}
			
                               
                               return $return;		
	}
          
          
          
          
           function buscarProceso($idCompania = FALSE, $etapa= false, $fDesde =false,$fHasta=false, $val =FALSE)
          {
               if($val == true)
                   {
                   
                   $this->db->where('FechaProceso >',"$fDesde");
                   $this->db->where('FechaProceso <',"$fHasta");
                   
                   }
                   
               $this->db->where('IdCompania',$idCompania);

                $this->db->where('IdEtapa',$etapa);
                
                $result = $this->db->get($this->mTableName);
                return $this->GetProcesosArrayFromQueryResult($result);
          }
          
          function buscarProcesoBarra($etapa= false, $fDesde =false,$fHasta=false)
          {   
                $this->db->where('FechaProceso >',"$fDesde");
                $this->db->where('FechaProceso <',"$fHasta");
                $this->db->where('IdEtapa',$etapa);
                
                $result = $this->db->get($this->mTableName);
                return $this->GetProcesosArrayFromQueryResult($result);
          }
          
          
          function buscarUltimoProceso($idCompania = FALSE)
          {
                $this->db->where('IdCompania',$idCompania);
                $this->db->order_by("IdProceso", "DESC");
                $this->db->limit("1", "0");
                $result = $this->db->get($this->mTableName);
                return $this->GetProcesosArrayFromQueryResult($result);
          }


          function loadProcesosByWhere($where, $etapa, $usuario = false)
	{     
		  $this->db->where_in('IdEtapa', $etapa);
		  
		  if ( $usuario != false) {
		  	 $this->db->where_in('IdUsuario', $usuario);
		  }

	      $result = $this->db->get_where($this->mTableName, $where);
	      return $result->num_rows();
	}
	
	function loadProcesosWhere($where, $usuario = false)
	{     
		 
		  if ( $usuario != false) {
		  	 $this->db->where_in('IdUsuario', $usuario);
		  }
			
		   $this->db->group_by('IdCompania');
	       $result = $this->db->get_where($this->mTableName, $where);
	       return $this->GetProcesosArrayFromQueryResult($result);
	}
	
     function LoadProcesosGestion($id_compania = false, $etapa = false, $start = false, $offset = false, $sortname = false, $sortorder = false) 
    {
			if($id_compania != false && $id_compania != '')
				$this->db->where('IdCompania', $id_compania);
				$this->db->where('IdEtapa', $etapa);

			if($offset != false)
				$this->db->limit($offset, $start);

			if($sortname != false && $sortorder != false) {
				$this->db->order_by($sortname, $sortorder);
			}

			$result = $this->db->get($this->mTableName);

			return $this->GetProcesosArrayFromQueryResult($result);
	}
	
	public function loadProcesosByArray($array,$start = false, $offset = false, $sortname = false, $sortorder = false)
	{

		if($offset != false)
				$this->db->limit($offset, $start);

		if($sortname != false && $sortorder != false) {
				$this->db->order_by($sortname, $sortorder);
		}
		
	     $result = $this->db->get_where($this->mTableName, $array);
         return $this->GetProcesosArrayFromQueryResult($result);
	}
	
	function LoadProcesosEtapas($id)
	{
		$this->db->where('IdEtapa', $id);
		$result = $this->db->get($this->mTableName);
           $resur = $this->GetProcesosArrayFromQueryResult($result);
           return $resur;
	}
	/**
	 * loadProcesosPorSemana:
	 * Retorna la cantidad de todos los procesos encontrados
	 * filtrados por semanas, tomando en cuenta el tipo de seguimiento
	 * y el usuario responsable de esos procesos 
	 * 
	 * @param array $filtroSemana
	 * @param int $idTipoSeguimiento
	 * @param int $idUsuario
	 * 
	 * @return int
	 */
	public function loadProcesosPorSemana($filtroSemana = array(), $idTipoSeguimiento = 0, $idUsuario = 0, $count = false, $categoria = 0)
	{
		if($categoria != 0){
			
			$this->db->where('clasificacion_proceso', $categoria);

		}
		$this->db->where('FechaSysProceso >=',$filtroSemana['inicial']);
		$this->db->where('FechaSysProceso <=',$filtroSemana['final']);
		 
		if($idTipoSeguimiento != 0){
			$this->db->where('IdTipoSeguimiento',$idTipoSeguimiento);
		}
		
		if($idUsuario != 0){
			$this->db->where('IdUsuario', $idUsuario);
		}
		
		$result = $this->db->get($this->mTableName);
		if($count == true){
			return $result->num_rows();
		}else{
			
			return $this->GetProcesosArrayFromQueryResult($result);
		}
		
	}
	
	public function loadProcesosPorGestor($filtroSemana = array(), $idUsuario = 0)
	{	
		$this->db->where('FechaSysProceso >=',$filtroSemana['inicial']);
		$this->db->where('FechaSysProceso <=',$filtroSemana['final']);
		
		if($idUsuario != 0){
			$this->db->where('IdUsuario', $idUsuario);
		}
		$result = $this->db->get($this->mTableName);
		
		return $result->num_rows();
	}
	public function loadProcesosPorGestorYEtapa($filtroSemana = array(), $idUsuario = 0, $categoria = 0)
	{	
		
		if($categoria != 0){

			$this->db->where('clasificacion_proceso', $categoria);

		}
		$this->db->where('FechaSysProceso >=',$filtroSemana['inicial']);
		$this->db->where('FechaSysProceso <=',$filtroSemana['final']);
		
		if($idUsuario != 0){
			$this->db->where('IdUsuario', $idUsuario);
		}
		
		$result = $this->db->get($this->mTableName);
		
		return $this->GetProcesosArrayFromQueryResult($result);
	}
	
	/**
	 * 
	 * Este metodo se encarga de traer todas las companias a las cuales
	 * se les ha dado seguimiento CI, de la tabla SC_Procesos
	 */
	 public function loadCompaniasCountSeguimientos($filtroSemana = array(), $idUsuario = 0)
	 {
	 	$this->db->select('IdCompania');
		$this->db->where_in('IdEtapa', array(4, 10, 11));
		$this->db->where('FechaSysProceso >=',$filtroSemana['inicial']);
		$this->db->where('FechaSysProceso <=',$filtroSemana['final']);
		
		if($idUsuario != 0){
			$this->db->where('IdUsuario', $idUsuario);
		}
		$this->db->group_by('IdCompania');
		
		$result = $this->db->get($this->mTableName);
		
		return $result->num_rows(); 
	 }
	
	public function loadProcesosPorEtapas($filtroSemana = array(), $idUsuario = 0)
	{		
		$this->db->where_in('IdEtapa', array(4, 10, 11));
		$this->db->where('FechaSysProceso >=',$filtroSemana['inicial']);
		$this->db->where('FechaSysProceso <=',$filtroSemana['final']);
		
		if($idUsuario != 0){
			$this->db->where('IdUsuario', $idUsuario);
		}
		
		$result = $this->db->get($this->mTableName);
		
		return $this->GetProcesosArrayFromQueryResult($result);
       	
	}
	
	
	public function loadProcesosPorGestorYFecha($filtroSemana = array(), $idUsuario = 0, $categoria = 0)
	{	
		if($categoria != 0){

			$this->db->where('clasificacion_proceso', $categoria);

		}
		$this->db->where('FechaSysProceso >=',$filtroSemana['inicial']);
		$this->db->where('FechaSysProceso <=',$filtroSemana['final']);
	
		if($idUsuario != 0){
			$this->db->where('IdUsuario', $idUsuario);
		}
		
		$result = $this->db->get($this->mTableName);
		
		return $this->GetProcesosArrayFromQueryResult($result);
	}
	
	
	public function loadProcesosPorIdEtapa($filtroSemana = array(), $IdEtapa, $idUsuario = 0, $filtroActivo = false, $count = true)
	{	
      	$this->db->where('IdEtapa',$IdEtapa);
      	$this->db->where('FechaSysProceso >=',$filtroSemana['inicial']);
		$this->db->where('FechaSysProceso <=',$filtroSemana['final']);
		
		if($idUsuario != 0){
			$this->db->where('IdUsuario', $idUsuario);
		}
		if($filtroActivo == true){
			$this->db->where('IdEstatus', 2);
		}
		
		$result = $this->db->get($this->mTableName);
		
		if($count == true){
			return $result->num_rows(); 
      	}
		return $this->GetProcesosArrayFromQueryResult($result);
      	
	}
	public function loadCompaniasPorIdEtapa($filtroSemana = array(), $IdEtapa, $idUsuario = 0)
	{
		$this->db->where('IdEtapa',$IdEtapa);
      	$this->db->where('FechaSysProceso >=',$filtroSemana['inicial']);
		$this->db->where('FechaSysProceso <=',$filtroSemana['final']);
		
		if($idUsuario != 0){
			$this->db->where('IdUsuario', $idUsuario);
		}
		
		$this->db->group_by('IdCompania');
		$result = $this->db->get($this->mTableName);
	
			return $result->num_rows(); 
      	
	
	}
	public function loadAllCompaniasPorIdEtapa($filtroSemana = "", $IdEtapa, $idUsuario = 0)
	{
		$this->db->where('IdEtapa',$IdEtapa);
      	$this->db->where('FechaSysProceso >=',$filtroSemana);

		if($idUsuario != 0){
			$this->db->where('IdUsuario', $idUsuario);
		}
		
		$this->db->group_by('IdCompania');
		$result = $this->db->get($this->mTableName);
	
		return $this->GetProcesosArrayFromQueryResult($result);
	}
	
	/**
	 * 
	 * Enter description here ...
	 * @param unknown_type $idCompania
	 * @param unknown_type $IdEtapa
	 * @param unknown_type $idUsuario
	 */
	public function loadProcesosPorIdCompania($idCompania, $IdEtapa = false, $idUsuario = 0, $filtroSemana = false)
	{
		if($IdEtapa != false){
			if(is_array($IdEtapa)){
				$this->db->where_in('IdEtapa',$IdEtapa);
			}else{
				$this->db->where('IdEtapa',$IdEtapa);
			}
		}
		if($filtroSemana != false){
			if(is_array($filtroSemana)){
				$this->db->where('FechaSysProceso >=',$filtroSemana['inicial']);
				$this->db->where('FechaSysProceso <=',$filtroSemana['final']);
			}else{
				$this->db->where('FechaSysProceso >=',$filtroSemana);
			}
		}
		
      	$this->db->where('IdCompania', $idCompania);
      	
		if($idUsuario != 0){
			$this->db->where('IdUsuario', $idUsuario);
		}
		
		$result = $this->db->get($this->mTableName);
	
		return $this->GetProcesosArrayFromQueryResult($result);
	}
	/**
	 * 
	 * Retorna todos los seguimientos encontrados agrupados por
	 * el campo pasado por parametro.
	 * @param String $campo
	 * @return array
	 */
	public function ObtenerProcesosAgrupados($campo, $idEdapa = false, $filtroSemana = false, $count = false, $etapaActual = 5)
	{
		
		if($idEdapa != false){
			$this->db->where_in('IdEtapa', $idEdapa);
		}
		
		if($filtroSemana != false){
			if(is_array($filtroSemana)){
				$this->db->where('FechaSysProceso >=',$filtroSemana['inicial']);
				$this->db->where('FechaSysProceso <=',$filtroSemana['final']);
			}else{
				$this->db->where('FechaSysProceso >=',$filtroSemana);
			}
		}
		
		if($etapaActual != 5){
			
			$this->db->where('EtapaActual',$etapaActual);
		}
		
		$this->db->group_by($campo);
		
		$result = $this->db->get($this->mTableName);
		if($count != false){
			return $result->num_rows(); 
		}
		return $this->GetProcesosArrayFromQueryResult($result);
	}
	
	/**
	 * 
	 * Retorna el primer id_proseso filtrado por etapa y compania ...
	 * @param int $idEtapa
	 * @param int $idCompania
	 * @return int 
	 */
	public function obtenerPrimerProsesoPorEtapa($idEtapa, $idCompania)
	{
		$this->db->where('IdEtapa', $idEtapa);
		$this->db->where('IdCompania', $idCompania);
		$this->db->group_by('IdCompania');
		
		$result = $this->db->get($this->mTableName);
		
		$objeto =  $this->GetProcesosArrayFromQueryResult($result);
		return $objeto[0]->getIdProceso();
	}
	
	/*public function getCompaniesEtapaHistorico($idEdapa = false, $filtroSemana = false $count = false)
	{	
		
		if($filtroSemana != false){
				if(is_array($filtroSemana)){
					$this->db->where('FechaSysProceso >=',$filtroSemana['inicial']);
					$this->db->where('FechaSysProceso <=',$filtroSemana['final']);
				}else{
					$this->db->where('FechaSysProceso >=',$filtroSemana);
				}
		}
	}*/
	public function loadLastProcesosPorEtapa($idCompania, $idEtapa, $filtroSemana = false)
	{
		$this->db->select_max('IdProceso');
		if($filtroSemana != false){
			if(is_array($filtroSemana)){
				$this->db->where('FechaSysProceso >=',$filtroSemana['inicial']);
				$this->db->where('FechaSysProceso <=',$filtroSemana['final']);
			}else{
				$this->db->where('FechaSysProceso >=',$filtroSemana);
			}
		}
		$query=$this->db->get_where($this->mTableName, array('IdCompania' =>$idCompania, 'IdEtapa' => $idEtapa));
		$res=$query->result();
		$rs=$res[0]->IdProceso;
		return $rs;
	}
	/**
	 * 
	 * elimina todos los seguimientos de la tabla SC_Procesos dados a una 
	 * compania en especifico
	 * @param int $idCompania
	 */
	public function eliminarProcesosPorCompania($idCompania)
	{
		$this->db->delete($this->mTableName, array('IdCompania' => $idCompania));
	}
	
	function getUltimosProcesos()
	{
		$this->db->limit(5,0);
		$this->db->order_by('FechaProceso','ASC');
		$resultado = $this->db->get($this->mTableName);
		$result=$this->GetProcesosArrayFromQueryResult($resultado);
		$data=array();
		if (count($data) > 0) {
			
			for ($i=0;$i<5;$i++)
		{
			$data[$i]['nombre']=$result[$i]->getDescripcion();
			$data[$i]['fecha']=$result[$i]->getFechaProceso();
			$res=$this->mresponsables->LoadresponsableById($result[$i]->getIdResponsable());
			$data[$i]['responsable']=$res->getNombreResponsable();
		}
		$str="";
		foreach ($data as $col)
		{
			$str.="<tr>"."<td>".$col['nombre']."</td>".
			"<td>".$col['fecha']."</td>".
			"<td>".$col['responsable']."</td>".
			"</tr>";
			
		}
		
		return $str;

		}
		
	}
	
	function GetCount($id_compania = false) 
	{
			$arr = $this->LoadProcesos($id_compania);
			if( $arr !== false)
				return count($arr);
			else
				return 0;
	}
	
	function loadLastProceso($idcompania)
	{
		$this->db->select_max('IdProceso');
		$query=$this->db->get_where($this->mTableName, array('IdCompania' =>$idcompania));
		$res=$query->result();
		$rs=$res[0]->IdProceso;
		return $rs;
	}
	
	function loadArrayLastProceso($array, $id)
	{
            
	 $var=array();	
            
		foreach($array as $i)
		{
		    $this->db->select_max('IdProceso');
		    $query = $this->db->get_where($this->mTableName, array('IdCompania' =>$i));
		    $res   = $query->result();
		    
		    $rs    = $res[0]->IdProceso;
		    
            $j = $this->loadProcesoById($rs);
            
                if($j->getIdEtapa() == $id) 
                {
         	       $var[] = $j->getIdCompania();
                }
                    
			}
         
       return $var;
	}
	
	
	
	function loadidcompany($id)
	{
		if($id != false && $id != '')
				$this->db->where('IdEtapa',$id);

			$result = $this->db->get($this->mTableName);

			return $this->GetProcesosArrayFromQueryResult($result);
	}
	/**
	 * 
	 * RETORNA UN PROCESO POR EL ID ...
	 * @param unknown_type $idproceso
	 */
	function loadProcesoById($idproceso)
	{
		//AQUI SE EJECUTA EL QUERY
		$qresult = $this->db->get_where($this->mTableName, array('IdProceso'=>$idproceso));		
		//VALIDANDO EL QUERY PARA SABER SI EL TIPO DE RETORNO SERA UN OBJETO 
		if ($qresult->num_rows() == 0)
		{
			return false;
		}
		//AQUI EL RETORNO	
			return new proceso($qresult->row());
	}
	
	function loadProcesoByIdCompania($idCompania)
	{
		//AQUI SE EJECUTA EL QUERY
		$qresult = $this->db->get_where($this->mTableName, array('IdCompania'=>$idCompania));		
		//VALIDANDO EL QUERY PARA SABER SI EL TIPO DE RETORNO SERA UN OBJETO 
		if ($qresult->num_rows() == 0)
		{
			return false;
		}
		//AQUI EL RETORNO	
			return new proceso($qresult->row());
	}
	
	function loadProcesoById2($idproceso)
	{
		
		$qresult = $this->db->get_where($this->mTableName, array('IdProceso'=>$idproceso));		
		if ($qresult->num_rows() == 0)
		{
			return false;
		}	
			$var =  new proceso($qresult->row());
			return $var->getIdCompania();
	}
	
   function CalcularDias($fechapar,$fechaact)
	{

		$fechapar_arr=explode('-',$fechapar);
		$fechapar_mk=mktime(0,0,0,$fechapar_arr[1],$fechapar_arr[2],$fechapar_arr[0]);
		$fechapar_mk=intval($fechapar_mk);

		$fechaact_arr=explode('-',$fechaact);
		$fechaact_mk=mktime(0,0,0,$fechaact_arr[1],$fechaact_arr[2],$fechaact_arr[0]);
		$fechaact_mk=intval($fechaact_mk);

		$segundos_diferencia =$fechaact_mk-$fechapar_mk;
		$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
		return  $dias_diferencia;

	}
		
	function loadProcesoByIdEtapas($idproceso)
	{
		
		$qresult = $this->db->get_where($this->mTableName, array('IdProceso'=>$idproceso));		
		if ($qresult->num_rows() == 0)
		{
			return false;
		}	
			$var = new proceso($qresult->row());
		
			// tiempo estimado de la etapa
			$etapa = $this->metapas->LoadEtapaById($var->getIdEtapa());
			$etapat = $etapa->GetTiempoEstimado();
	       
			//modelo de tiempo de etapas
			$dias = $this->CalcularDias($var->getFechaProceso(),date('Y-m-d'));
			
			$por = $dias*100;
			$por = $por/$etapat;
			
			return $por;
	
	}
	
	function Delete($id_etapa) 
	{
		    return $this->db->delete($this->mTableName, array('IdProceso' => $id_etapa));
	}
	
	/**
	 * ACTUALIZA LA ETAPA ACTUAL DE LOS PROCESOS EN LA QUE SE ENCUENTRA
	 * UNA COMPANIA
	 * @param int $idCompania
	 * @param int $idEtapa
	 */
	
	public function setEtapaActualProceso($idCompania, $idEtapa)
	{
		$this->db->where('IdCompania', $idCompania);
		$this->db->where('IdEtapa', $idEtapa);
		$data = array('EtapaActual' => 1);
		$this->db->update($this->mTableName, $data);
		
	}
	/**
	 * 
	 * ACTUALIZA EL CAMPO clasificacion_proceso DEPENDIENDO EN LA ETAPA QUE SE
	 * ENCUENTRE  UN PROCESO
	 * @param int $idCompania
	 * @param int $idEtapa
	 * @param int $clasificacion
	 */
	public function setClasificacionProceso($idProceso, $idEtapa, $idClasificacion)
	{
		$this->db->where('IdProceso', $idProceso);
		$this->db->where('IdEtapa', $idEtapa);
		
		$data = array('clasificacion_proceso'	=>	$idClasificacion);
		
		$this->db->update($this->mTableName, $data);
	}
    
	
}

class proceso
{
	private $idproceso;
	private $idetapa;
	private $etapaActual;
	private $idestatus;
	private $descripcionproceso;
	private $fechaproceso;
	private $fechasysproceso;
	private $timesysproceso;
	private $idresponsable;
	private $idusuario;
	private $idcompania;
	private $comentario;
	private $dias;
	private $fechas;
	private $IdTipoSeguimiento;
          private $fechaContacto;


          function __construct($obj_proceso)
	{
		$this->setIdProceso($obj_proceso->IdProceso);
		$this->setIdEtapa($obj_proceso->IdEtapa);
		$this->setEtapaActual($obj_proceso->EtapaActual);
		$this->setIdEstatus($obj_proceso->IdEstatus);
		$this->setDescripcion($obj_proceso->DescripcionProceso);
		$this->setFechaProceso($obj_proceso->FechaProceso);
		$this->setTimeSysProceso($obj_proceso->TimeSysProceso);
		$this->setFechaSys($obj_proceso->FechaSysProceso);
		$this->setIdResponsable($obj_proceso->IdResponsable);
		$this->setIdUsuario($obj_proceso->IdUsuario);
		$this->setIdCompania($obj_proceso->IdCompania);
		$this->setComentario($obj_proceso->Comentario);
		$this->setDias($obj_proceso->dias);
		$this->setFechaS($obj_proceso->Fechas);
		$this->setIdTipoSeguimiento($obj_proceso->IdTipoSeguimiento);
                    $this->setFechaContacto($obj_proceso->fechaContacto);
	}
	
	function setIdProceso($idproceso)
	{
		$this->idproceso=$idproceso;
	}
	
	function getIdProceso()
	{
		return $this->idproceso;
	}
	
	function setIdEtapa($idetapa)
	{
		$this->idetapa=$idetapa;
	}
	
	function getIdEtapa()
	{
		return $this->idetapa;
	}
	
	function setIdEstatus($idestatus)
	{
		$this->idestatus=$idestatus;
	}
	
	function getIdEstatus()
	{
		return $this->idestatus;
	}
	
	function setDescripcion($desc)
	{
		$this->descripcionproceso=$desc;
	}
	
	function getDescripcion()
	{
		return $this->descripcionproceso;
	}
	
	function setFechaProceso($fecha)
	{
		$this->fechaproceso=$fecha;
	}
	
	function getFechaProceso()
	{
		return $this->fechaproceso;
	}
	
	function setFechaSys($fecha)
	{
		$this->fechasysproceso=$fecha;
	}
	
	function getFechaSys()
	{
		return $this->fechasysproceso;
	}
	
	function setIdUsuario($idusuario)
	{
		$this->idusuario=$idusuario;
	}
	
	function getIdUsuario()
	{
		return $this->idusuario;
	}
	
	function setIdResponsable($idresponsable)
	{
		$this->idresponsable=$idresponsable;
	}
	
	function getIdResponsable()
	{
		return $this->idresponsable;
	}
	
	function setIdCompania($idcompania)
	{
		$this->idcompania=$idcompania;
	}
	
	function getIdCompania()
	{
		return $this->idcompania;
	}
	
	function setComentario($comentario)
	{
		$this->comentario=$comentario;
	}
	
	function getComentario()
	{
		return $this->comentario;
	}
		
	function setDias($dias)
	{
		$this->dias=$dias;
	}
	
	function setIdTipoSeguimiento($IdTipoSeguimiento)
	{
		$this->IdTipoSeguimiento = $IdTipoSeguimiento;
	}
	
	function getDias()
	{
		return $this->dias;
	}
	
	function setFechaS($dias)
	{
		$this->fechas=$dias;
	}
	
	function getFechaS()
	{
		return $this->fechas;
	}
	
	function getIdTipoSeguimiento()
	{
		return $this->IdTipoSeguimiento;
	}
	
	function setTimeSysProceso($timeproceso)
	{
		$this->timesysproceso = $timeproceso;
	}
	
	public function getTimeSysProceso()
	{
		return $this->timesysproceso;
	}
	public function getEtapaActual()
	{
		return $this->etapaActual;
	}
	public function setEtapaActual($etapaA)
	{
		$this->etapaActual = $etapaA;
	}
          public function getFechaContacto() {
              return $this->fechaContacto;
          }

          public function setFechaContacto($fechaContacto) {
              $this->fechaContacto = $fechaContacto;
          }


}